package org.example.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;


/**
* @Author: 鸢一折纸
* @Email: 3498881048@qq.com
* @Date: 2025/09/04 10:56
* @Description: ${Description}
**/


/**
 * 考勤记录表
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "attendance_record")
public class AttendanceRecord {
    @TableId(value = "record_id", type = IdType.INPUT)
    private Integer recordId;

    @TableField(value = "user_id")
    private Integer userId;

    @TableField(value = "record_date")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date recordDate;

    @TableField(value = "attendance_cycle")
    private String attendanceCycle;

    @TableField(value = "morning_status")
    private Object morningStatus;

    @TableField(value = "afternoon_status")
    private Object afternoonStatus;

    @TableField(value = "morning_clock")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date morningClock;

    @TableField(value = "afternoon_clock")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date afternoonClock;

    @TableField(value = "`location`")
    private String location;

    @TableField(value = "site_photos")
    private String sitePhotos;

    @TableField(value = "notes")
    private String notes;

    @TableField(value = "late_minutes")
    private Integer lateMinutes;

    @TableField(value = "early_leave_minutes")
    private Integer earlyLeaveMinutes;

    @TableField(value = "submit_at")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date submitAt;

    @TableField(value = "updated_at")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updatedAt;

    @TableField(value = "rule_id")
    private Integer ruleId;
}